@CLASS
pfListTests

@USE
pf/tests/pfTestCase.p

@BASE
pfTestCase

@create[aTestName]
  ^BASE:create[$aTestName]

@setUp[]
  ^use[pf/collections/pfList.p]
  $al[^pfList::create[]]

@addTest[]
  ^al.add[Element 1]
  ^al.add[Element 2]
  ^al.add[Element 3]
  ^al.add[Element 4]
  ^pfAssert:isTrue($al.count == 4)[Не добавились элементы $al.count]
  
  ^pfAssert:isTrue($al.2 eq "Element 3")[Неправильное значение элемента.]

@foreachTest[][it;res]
  ^al.add[1]
  ^al.add[2]
  ^al.add[3]
  ^al.add[4]
  ^al.add[5]
  ^al.add[6]
  ^al.add[7]

#  ^pfAssert:isTrue($al)[Не работает GET в скалярном контексте.]

  $res[^al.foreach[it]{$it}[|]]
  ^pfAssert:isTrue($res eq "1|2|3|4|5|6|7")[Неверный результат итератора: "$res"]

  ^al.removeAt[2]
  $res[^al.foreach[it]{$it}[|]]
  ^pfAssert:isTrue($res eq "1|2|4|5|6|7")[Неверный результат итератора 2: "$res"]

@breakTest[][it;res;list]
  $list[^pfList::create[1,2,3,4,5,6]]
  $res[^list.foreach[it]{$it^if($it eq "3"){^list.break[]}}[,]] 
  ^pfAssert:isTrue($res eq "1,2,")[Break не выполнился как надо: "$res"]

@continueTest[]
  $list[^pfList::create[1,2,3,4,5,6]]
  $res[^list.foreach[it]{$it^if($it eq "3"){^list.continue[]}}[,]] 
  ^pfAssert:isTrue($res eq "1,2,4,5,6")[Continue не выполнился как надо: "$res"]
    